750 IF INTELLIGENCE > HISCORE THEN LET HISCORE = INTELLIGENCE: LET HISCORE$ = "INTELLIGENCE"
760 IF WISDOM > HISCORE THEN LET HISCORE = WISDOM: LET HISCORE$ = "WISDOM"
770 IF DEXTERITY > HISCORE THEN LET HISCORE = DEXTERITY: LET HISCORE$ = "DEXTERITY"
780 IF HISCORE$ <> "STRENGTH" THEN LET NEXTHI$ = "STRENGTH" ELSE LET NEXTHI$ = ""
790 IF HISCORE$ <> "STRENGTH" THEN LET NEXTHI = STRENGTH ELSE LET NEXTHI = 0
800 IF (INTELLIGENCE > NEXTHI) AND (HISCORE$ <> "INTELLIGENCE") THEN LET NEXTHI = INTELLIGENCE: LET NEXTHI$ = "INTELLIGENCE"
810 IF (WISDOM > NEXTHI) AND (HISCORE$ <> "WISDOM") THEN LET NEXTHI = WISDOM: LET NEXTHI$ = "WISDOM"
820 IF (DEXTERITY > NEXTHI) AND (HISCORE$ <> "DEXTERITY") THEN LET NEXTHI = DEXTERITY: LET NEXTHI$ = "DEXTERITY"
830 'GET 1ST RECOMMENDATION
840 IF (STRENGTH > 12 AND INTELLIGENCE > 12) AND (INTELLIGENCE > DEXTERITY) THEN LET REC1$ = "ELF": GOTO 920
850 IF (STRENGTH > 12 AND DEXTERITY > 12) THEN LET REC1$ = "HALFLING": GOTO 920
860 IF (HISCORE$ = "STRENGTH" OR NEXTHI$ = "STRENGTH") AND (HISCORE$ = "DEXTERITY" OR NEXTHI$ = "DEXTERITY") THEN LET REC1$ = "HALFLING": GOTO 920
870 IF (HISCORE$ = "STRENGTH" OR NEXTHI$ = "STRENGTH") AND (HISCORE$ = "INTELLIGENCE" OR NEXTHI$ = "INTELLIGENCE") THEN LET REC1$ = "ELF": GOTO 920
880 IF HISCORE$ = "INTELLIGENCE" THEN LET REC1$ = "MAGIC-USER": LET HISCORE = 0: GOTO 920
890 IF HISCORE$ = "WISDOM" THEN LET REC1$ = "CLERIC": LET HISCORE = 0: GOTO 920
900 IF HISCORE$ = "DEXTERITY" THEN LET REC1$ = "THIEF": LET HISCORE = 0: GOTO 920
910 IF HISCORE$ = "STRENGTH" THEN LET REC1$ = "DWARF": LET REC2$ = "FIGHTER": GOTO 980
920 'GET SECOND RECOMMENDATION
930 IF NEXTHI > HISCORE THEN LET NEXTHI = HISCORE: LET HISCORE$ = NEXTHI$
940 IF HISCORE$ = "INTELLIGENCE" THEN LET REC2$ = "MAGIC-USER": GOTO 980
950 IF HISCORE$ = "WISDOM" THEN LET REC2$ = "CLERIC": GOTO 980
960 IF HISCORE$ = "DEXTERITY" THEN LET REC2$ = "THIEF": GOTO 980
970 IF NEXTHI$ = "STRENGTH" THEN LET REC2$ = "DWARF": IF REC1$ = "" THEN LET REC2$ = "FIGHTER"
980 'PRINT RECOMMENDATIONS
990 IF REC1$ = "" THEN LET REC2$ = REC1$: LET REC2$ = ""
1000 PRINT
1010 PRINT "I RECOMMEND ";REC1$;
1020 IF (REC2$ <> "") AND (REC2$ <> REC1$) THEN PRINT " OR ";REC2$
1030 LET COL = POS(0)
1040 LET ROW = CSRLIN
1050 INPUT CLASS$
1060 IF LEFT$(CLASS$,1)="C" THEN CLASS$="CLERIC": GOTO 1160
1070 IF LEFT$(CLASS$,1)="D" THEN CLASS$="DWARF": GOTO 1160
1080 IF LEFT$(CLASS$,1)="E" THEN CLASS$="ELF": GOTO 1160
1090 IF LEFT$(CLASS$,1)="F" THEN CLASS$="FIGHTER": GOTO 1160
1100 IF LEFT$(CLASS$,1)="H" THEN CLASS$="HALFLING": GOTO 1160
1110 IF LEFT$(CLASS$,1)="M" THEN CLASS$="MAGIC-USER": GOTO 1160
1120 IF LEFT$(CLASS$,1)="T" THEN CLASS$="THIEF": GOTO 1160
1130 PRINT "WHAT?"
1140 LOCATE ROW,COL
1150 GOTO 1030
1160 RETURN
1170 '
1180 'PRINT SCORES
1190 LOCATE 1,10
1200 PRINT "PLAYER ABILITIES"
1210 LOCATE 2,10
1220 PRINT "STRENGTH ";STRENGTH
1230 LOCATE 3,10
1240 PRINT "INTELLIGENCE ";INTELLIGENCE
1250 LOCATE 4,10
1260 PRINT "WISDOM ";WISDOM
1270 LOCATE 5,10
1280 PRINT "DEXTERITY ";DEXTERITY
1290 LOCATE 6,10
1300 PRINT "CONSTITUTION ";CONSTITUTION
1310 LOCATE 7,10
1320 PRINT "CHARISMA ";CHARISMA
1330 RETURN
1340 '
1350 'PRINT CHOICES
1360 LOCATE 10,5
1370 PRINT "CHOOSE A CLASS FOR YOUR CHARACTER"
1380 PRINT
1390 PRINT " CLERIC"
1400 PRINT " DWARF"
1410 PRINT " ELF"
1420 PRINT " FIGHTER"
1430 PRINT " HALFLING"
1440 PRINT " MAGIC-USER"
1450 PRINT " THIEF"
1460 RETURN
1470 '
1480 'GET NEXT AVAILABLE PLAYER
1490 LET RNO = 0
1500 'GET A PLAYER RECORD
1510 LET RNO = RNO + 1
1520 IF RNO > 10 THEN PRINT "NO MORE AVAILABLE PLAYERS ": STOP
1530 GET #1,RNO
1540 IF NM$ <> SPACE$(24) THEN GOTO 1500
1550 PRINT
1560 PRINT " YOUR PLAYER NUMBER IS ";RNO
1570 PRINT
1580 PRINT " HIT ANY KEY TO CONTINUE"
1590 PRINT
1600 GOSUB 4090 WAIT
1610 CLS
1620 RETURN
1630 '
1640 'ADJUST ABILITIES
1650 CLS
1660 GOSUB 1170 'PRINT ABILITIES
1670 PRINT
1680 PRINT "YOUR CHARACTER'S CLASS IS ";CLASS$
1690 PRINT
1700 LET MSG$ = "YOU MAY ADJUST "
1710 IF (CLASS$ = "MAGIC-USER") THEN LET MSG$ = MSG$ + "INTELLIGENCE "
1720 IF (CLASS$ = "CLERIC") THEN LET MSG$ = MSG$ + "WISDOM "
1730 IF (CLASS$ = "FIGHTER") OR (CLASS$ = "DWARF") THEN LET MSG$ = MSG$ + "STRENGTH "
1740 IF (CLASS$ = "HALFLING") THEN LET MSG$ = MSG$ + "STRENGTH OR DEXTERITY "
1750 IF (CLASS$ = "THIEF") THEN LET MSG$ = MSG$ + "DEXTERITY "
1760 IF (CLASS$ = "ELF") THEN LET MSG$ = MSG$ + "STRENGTH OR INTELLIGENCE "
1770 LET MSG$ = MSG$ + "ONE POINT BY"
1780 LET MSG1$ = "LOWERING "
1790 IF ((CLASS$ = "MAGIC-USER") OR (CLASS$ = "CLERIC")) AND STRENGTH > 10 THEN LET MSG1$ = MSG1$ + "STRENGTH "
1800 IF ((CLASS$ = "FIGHTER") OR (CLASS$ = "DWARF") OR (CLASS$ = "HALFLING") OR (CLASS$ = "THIEF") OR (CLASS$ = "CLERIC")) AND INTELLIGENCE > 10 THEN LET MSG1$ = MSG1$ + "INTELLIGENCE "
1810 IF ((CLASS$ = "FIGHTER") OR (CLASS$ = "DWARF") OR (CLASS$ = "HALFLING")OR (CLASS$ = "THIEF") OR (CLASS$ = "MAGIC-USER") OR (CLASS$ = "ELF")) AND WISDOM > 10 THEN LET MSG1$ = MSG1$ + "WISDOM "
1820 IF MSG1$ = "LOWERING " THEN PRINT "YOU CANNOT ADJUST ANY ABILITY": PRINT "HIT ENTER TO CONTINUE": GOTO 1910
1830 LET MSG1$ = MSG1$ + " TWO POINTS"
1840 PRINT MSG$
1850 PRINT MSG1$
1860 PRINT
1870 PRINT " IF YOU WISH TO RAISE AN ABILITY, ENTER THE ABILITY."
1880 PRINT
1890 PRINT " IF YOU DON'T WANT TO ADJUST ANY ABILITIES, JUST PRESS ENTER."
1900 LOCATE 21,1
1910 PRINT " "
1920 LOCATE 21,1
1930 INPUT ADJ.ABILITY$
1940 IF ADJ.ABILITY$ = "" THEN GOTO 2280
1950 IF LEFT$(ADJ.ABILITY$,1)="S" THEN ADJ.ABILITY$="STRENGTH": GOTO 1990
1960 IF LEFT$(ADJ.ABILITY$,1)="I" THEN ADJ.ABILITY$="INTELLIGENCE": GOTO 1990
1970 IF LEFT$(ADJ.ABILITY$,1)="W" THEN ADJ.ABILITY$="WISDOM": GOTO 1990
1980 IF LEFT$(ADJ.ABILITY$,1)="D" THEN ADJ.ABILITY$="DEXTERITY": GOTO 1990
1990 IF (ADJ.ABILITY$ <> "STRENGTH") AND (ADJ.ABILITY$ <> "INTELLIGENCE") AND (ADJ.ABILITY$ <> "WISDOM") AND (ADJ.ABILITY$ <> "DEXTERITY") THEN GOTO 1900
2000 LOCATE 22,1
2010 PRINT "WHAT ABILITY DO YOU WANT TO LOWER "
2020 PRINT " "
2030 LOCATE 23,1
2040 INPUT " ";LOW.ABILITY$
2050 IF LEFT$(LOW.ABILITY$,1)="S" THEN LOW.ABILITY$="STRENGTH": GOTO 2090
2060 IF LEFT$(LOW.ABILITY$,1)="I" THEN LOW.ABILITY$="INTELLIGENCE": GOTO 2090
2070 IF LEFT$(LOW.ABILITY$,1)="W" THEN LOW.ABILITY$="WISDOM": GOTO 2090
2080 IF LOW.ABILITY$ = ADJ.ABILITY$ THEN GOTO 1900
2090 IF (LOW.ABILITY$ <> "STRENGTH") AND (LOW.ABILITY$ <> "INTELLIGENCE") AND (LOW.ABILITY$ <> "WISDOM") THEN GOTO 2000
2100 IF (LOW.ABILITY$ = "STRENGTH") AND (STRENGTH < 11) THEN GOTO 2200
2110 IF (LOW.ABILITY$ = "WISDOM") AND (WISDOM < 11) THEN GOTO 2200
2120 IF (LOW.ABILITY$ = "INTELLIGENCE") THEN LET INTELLIGENCE = INTELLIGENCE - 2
2130 IF (LOW.ABILITY$ = "STRENGTH") THEN LET STRENGTH = STRENGTH - 2
2140 IF (LOW.ABILITY$ = "WISDOM") THEN LET WISDOM = WISDOM - 2
2150 IF (ADJ.ABILITY$ = "INTELLIGENCE") THEN LET INTELLIGENCE = INTELLIGENCE + 1
2160 IF (ADJ.ABILITY$ = "STRENGTH") THEN LET STRENGTH = STRENGTH + 1
2170 IF (ADJ.ABILITY$ = "DEXTERITY") THEN LET DEXTERITY = DEXTERITY + 1
2180 IF (ADJ.ABILITY$ = "WISDOM") THEN LET WISDOM = WISDOM + 1
2190 GOTO 1640
2200 'CANT ADJUST
2210 CLS
2220 PRINT "YOU CAN'T LOWER THAT ABILITY"
2230 PRINT "HIT ANY KEY TO CONTINUE"
2240 GOSUB 4090 WAIT
2250 CLS
2260 GOSUB 1180
2270 GOTO 1640
2280 RETURN
2290 'END
2300 CLOSE
2310 CHAIN "MENU",1000
2320 '
2330 'KILL A PLAYER
2340 CLS
2350 PRINT " KILL A PLAYER CHARACTER"
2360 PRINT
2370 PRINT "IF YOU KNOW THE PLAYER NUMBER, ENTER IT, OTHERWISE ENTER 0"
2380 INPUT RNO
2390 IF RNO < 0 OR RNO > 10 THEN PRINT "WHAT?": GOTO 2370
2400 IF RNO = 0 THEN GOTO 2430 'GET PLAYER NAME
2410 GET #1,RNO
2420 GOTO 2520 'DOUBLE CHECK
2430 'GET PLAYERS NAME
2440 INPUT "ENTER CHARACTER'S NAME ",INNM$
2450 LET SEEKNM$ = SPACE$(24)
2460 LSET SEEKNM$ = INNM$
2470 LET RNO = 0
2480 LET RNO = RNO + 1
2490 IF RNO > 10 THEN PRINT "CHARACTER NAME NOT FOUND": GOTO 2370
2500 GET #1,RNO
2510 IF NM$ <> SEEKNM$ THEN GOTO 2480
2520 'DOUBLE CHECK
2530 PRINT "DO YOU WANT TO KILL ";NM$;"?. ENTER YES OR NO"
2540 INPUT REPLY$
2550 IF LEFT$(REPLY$,1) = "Y" OR LEFT$(REPLY$,1) = "y" THEN GOTO 2570
2560 GOTO 2610
2570 ' KILL THE CHARACTER
2580 LSET NM$ = SPACE$(24)
2590 PUT #1,RNO
2600 GOSUB 4620 'ZERO SUPPLIES
2610 RETURN
2620 '
2630 'TITLE SCREEN
2640 SCREEN 3
2650 KEY OFF
2660 WIDTH 20
2670 COLOR 1,4
2680 CLS
2690 LOCATE 4,1
2700 PRINT " THE"
2710 LOCATE 7,1
2720 PRINT " PLAYER"
2730 LOCATE 10,1
2740 PRINT " CHARACTERS"
2750 'KILL TIME
2760 FOR X = 1 TO 500
2770 NEXT X
2780 RETURN
2790 '
2800 'PRINT MENU
2810 SCREEN 1
2820 WIDTH 40
2830 COLOR 4,1
2840 CLS
2850 LOCATE 3,1
2860 PRINT " THE PLAYER CHARACTERS"
2870 LOCATE 7,6
2880 PRINT "1. CREATE A NEW PLAYER CHARACTER"
2890 LOCATE 9,6
2900 PRINT "2. LIST A PLAYER CHARACTER"
2910 LOCATE 11,6
2920 PRINT "3. KILL A PLAYER CHARACTER"
2930 LOCATE 13,6
2940 PRINT "9. END "
2950 RETURN
2960 '
2970 'GET HIT POINTS
2980 CLS
2990 PRINT " HIT POINTS"
3000 PRINT
3010 PRINT
3020 IF CLASS$ = "CLERIC" THEN LET DICE = 6
3030 IF CLASS$ = "DWARF" THEN LET DICE = 8
3040 IF CLASS$ = "ELF" THEN LET DICE = 6
3050 IF CLASS$ = "FIGHTER" THEN LET DICE = 8
3060 IF CLASS$ = "HALFLING" THEN LET DICE = 6
3070 IF CLASS$ = "MAGIC-USER" THEN LET DICE = 4
3080 IF CLASS$ = "THIEF" THEN LET DICE = 4
3090 LET HIT.POINTS = INT(DICE * RND) + 1
3100 IF HIT.POINTS < 3 THEN GOTO 3090
3110 IF CONSTITUTION < 4 THEN LET HIT.POINTS = HIT.POINTS - 3: GOTO 3180
3120 IF CONSTITUTION < 6 THEN LET HIT.POINTS = HIT.POINTS - 2: GOTO 3180
3130 IF CONSTITUTION < 9 THEN LET HIT.POINTS = HIT.POINTS - 1: GOTO 3180
3140 IF CONSTITUTION < 13 THEN GOTO 3180
3150 IF CONSTITUTION < 16 THEN LET HIT.POINTS = HIT.POINTS +1: GOTO 3180
3160 IF CONSTITUTION < 18 THEN LET HIT.POINTS = HIT.POINTS +2: GOTO 3180
3170 LET HIT.POINTS = HIT.POINTS +3
3180 IF HIT.POINTS < 3 THEN GOTO 3090
3190 PRINT "YOUR HIT POINTS ARE ";HIT.POINTS
3200 RETURN
3210 '
3220 'GET MONEY
3230 LET MONEY! = 0
3240 RANDOMIZE TIMER
3250 LET MONEY! = INT(RND * 6) + 1
3260 LET MONEY! = MONEY! + INT(RND * 6) + 1
3270 LET MONEY! = MONEY! + INT(RND * 6) + 1
3280 LET MONEY! = MONEY! * 10
3290 PRINT
3300 PRINT "YOU HAVE ";MONEY!;" GOLD PIECES
3310 RETURN
3320 '
3330 'GET NAME FOR CHARACTER
3340 PRINT
3350 PRINT "CHOOSE A NAME FOR YOUR CHARACTER"
3360 PRINT
3370 LET COL = POS(0)
3380 LET ROW = CSRLIN
3390 PRINT "........................"
3400 LOCATE ROW,COL
3410 INPUT CHAR.NAME$
3420 RETURN
3430 '
3440 'OPEN FILES
3450 OPEN "DUNCHAR" AS #1 LEN = 122
3460 FIELD #1,2 AS STRN$,2 AS INTL$,2 AS WIS$,2 AS DEX$,2 AS CON$,2 AS CHA$,10 AS CLAS$,2 AS HIT$,4 AS MONEY$,2 AS LVL$,2 AS ARM$,2 AS SV.POISON$,2 AS SV.MAGIC$,2 AS SV.STONE$,2 AS SV.DRAG$,2 AS SV.SPELL$,4 AS EXPR$,24 AS NM$,7 AS ALIGN$,45 AS D$ ''
3470 OPEN "DUNSHOP" AS #2 LEN=44
3480 FIELD #2,2 AS SID$,1 AS SCLASS$,15 AS SNAME$,2 AS SCOST$,2 AS SDAM$,2 AS SWT$,2 AS P1$,2 AS P2$,2 AS P3$,2 AS P4$,2 AS P5$,2 AS P6$,2 AS P7$,2 AS P8$,2 AS P9$,2 AS P10$
3490 RETURN
3500 '
3510 'UPDATE PLAYER RECORD
3520 LSET STRN$ = MKI$(STRENGTH)
3530 LSET INTL$ = MKI$(INTELLIGENCE)
3540 LSET WIS$ = MKI$(WISDOM)
3550 LSET DEX$ = MKI$(DEXTERITY)
3560 LSET CON$ = MKI$(CONSTITUTION)
3570 LSET CHA$ = MKI$(CHARISMA)
3580 LSET CLAS$ = CLASS$
3590 LSET HIT$ = MKI$(HIT.POINTS)
3600 LSET MONEY$ = MKS$(MONEY!)
3610 LSET LVL$ = MKI$(1)
3620 LSET ARM$ = MKI$(ARMOR.CLASS)
3630 LSET SV.POISON$ = MKI$(SV.POISON)
3640 LSET SV.MAGIC$ = MKI$(SV.MAGIC)
3650 LSET SV.STONE$ = MKI$(SV.STONE)
3660 LSET SV.DRAG$ = MKI$(SV.DRAGON)
3670 LSET SV.SPELL$ = MKI$(SV.SPELL)
3680 LSET EXPR$ = MKS$(0)
3690 LSET NM$ = CHAR.NAME$
3700 LSET ALIGN$ = ALIGNMENT$
3710 PUT #1,RNO
3720 RETURN
3730 '
3740 'GET ALIGNMENT
3750 CLS
3760 PRINT " CHARACTER ALIGNMENT"
3770 PRINT
3780 PRINT " LAWFUL"
3790 PRINT " CHAOTIC"
3800 PRINT " NEUTRAL"
3810 PRINT
3820 INPUT " ENTER YOUR CHOICE ",ALIGNMENT$
3830 IF LEFT$(ALIGNMENT$,1)="L" THEN ALIGNMENT$="LAWFUL": GOTO 3860
3840 IF LEFT$(ALIGNMENT$,1)="C" THEN ALIGNMENT$="CHAOTIC": GOTO 3860
3850 IF LEFT$(ALIGNMENT$,1)="N" THEN ALIGNMENT$="NEUTRAL": GOTO 3860
3860 IF (ALIGNMENT$ <> "LAWFUL") AND (ALIGNMENT$ <> "CHAOTIC") AND (ALIGNMENT$ <> "NEUTRAL") THEN PRINT "WHAT?": GOTO 3810
3870 RETURN
3880 '
3890 'GET SAVING THROWS
3900 IF CLASS$ = "CLERIC" THEN LET SV.POISON = 11: LET SV.MAGIC = 12: LET SV.STONE = 14: LET SV.DRAGON = 16: LET SV.SPELL = 15
3910 IF CLASS$ = "DWARF" OR CLASS$ = "HALFLING" THEN LET SV.POISON = 10: LET SV.MAGIC = 11: LET SV.STONE = 12: LET SV.DRAGON = 13: LET SV.SPELL = 14
3920 IF CLASS$ = "ELF" THEN LET SV.POISON = 12: LET SV.MAGIC = 13: LET SV.STONE = 13: LET SV.DRAGON = 15: LET SV.SPELL = 15
3930 IF CLASS$ = "FIGHTER" THEN LET SV.POISON = 12: LET SV.MAGIC = 13: LET SV.STONE = 14: LET SV.DRAGON = 15: LET SV.SPELL = 16
3940 IF CLASS$ = "MAGIC-USER" THEN LET SV.POISON = 13: LET SV.MAGIC = 14: LET SV.STONE = 13: LET SV.DRAGON = 16: LET SV.SPELL = 15
3950 IF CLASS$ = "THIEF" THEN LET SV.POISON = 13: LET SV.MAGIC = 14: LET SV.STONE = 13: LET SV.DRAGON = 16: LET SV.SPELL = 15